/**
 * NyARToolkit for proce55ing/3.0.5
 * (c)2008-2017 nyatla
 * airmail(at)ebony.plala.or.jp
 * 
 * スクリーン座標からARマーカーの表面座標を計算するサンプルです。マーカーを認識した後にマウスをスクリーンで動かしてみてください。
 * Hiroマーカを使います。
 * 全ての設定ファイルとマーカファイルはスケッチディレクトリのlibraries/nyar4psg/dataにあります。
 * 
 * This sample converts to the marker plain position from the screen position.
 * Move the mouse cursor on the screen after the marker is captured.
 * The sketch uses "Patt.hiro".
 * Any pattern and configuration files are found in libraries/nyar4psg/data inside your sketchbook folder.  
 */
import processing.video.*;
import jp.nyatla.nyar4psg.*;

Capture cam;
MultiMarker nya;

void setup() {
  size(640,480,P3D);
  colorMode(RGB, 100);
  cam=new Capture(this,640,480);
  nya=new MultiMarker(this,width,height,"../../data/camera_para.dat",NyAR4PsgConfig.CONFIG_PSG);
  nya.addARMarker("../../data/patt.hiro",80);//id=0
  cam.start();  
}

int c=0;
void draw()
{
  c++;
  if (cam.available() !=true) {
      return;
  }
  cam.read();
  nya.detect(cam);
  background(0);
  nya.drawBackground(cam);//frustumを考慮した背景描画
  if((!nya.isExist(0))){
    return;
  }
  PVector p=nya.screen2ObjectCoordSystem(0,mouseX,mouseY);
  nya.beginTransform(0);
  noFill();
  stroke(100,0,0);
  rect(-40,-40,80,80);
  stroke(100,100,0);
  ellipse((int)p.x,(int)p.y,20-c%20,20-c%20);
  nya.endTransform();
}